package main

import "fmt"

type Runner interface {
	run()
}

type MyMap[k string | int, v Runner] map[k]v

type MyString string

func (m MyString) run() {
	fmt.Println("run")
}

func main() {
	// var d MyMap[int, MyString] = make(MyMap[int, MyString])
	var d = make(MyMap[int, MyString])
	fmt.Printf("%T, %v\n", d, d)
	d[100] = "abc"
	fmt.Println(d)
	fmt.Println("~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~")
	d[100].run()
}
